package cn.com.dashihui.web.service;

import java.sql.SQLException;
import java.util.List;

import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.IAtom;

import cn.com.dashihui.web.dao.GoodsSaleOption;
import cn.com.dashihui.web.dao.GoodsSaleSpec;
import cn.com.dashihui.web.dao.GoodsSaleTemplate;

public class GoodsSaleSpecService {
	
	/**
	 * 
	 * @param name
	 * @return
	 */
	public int findidByName(String specName){
		return GoodsSaleSpec.me().findFirst("SELECT s.id from  t_bus_goods_sale_spec s where specName=?",specName).get("id");
	}
	/**
	 * 增加规格
	 */
	public boolean save(GoodsSaleSpec spec){
		return spec.save();
	}
	public boolean saveOption(GoodsSaleOption option){
		return option.save();
	}
	/**
	 *修改规格
	 */
	public boolean updategood(GoodsSaleSpec spec){
		return spec.update();
	}
	/**
	 * 删除规格
	 */
	public boolean delete(final int id){
		//事务处理，同时删除角色记录，并删除相应的用户角色关联记录，以及相应的角色权限关联记录
		return Db.tx(new IAtom(){
			@Override
			public boolean run() throws SQLException {
				boolean ret1 = GoodsSaleSpec.me().deleteById(id);
				Db.update("DELETE FROM t_bus_goods_sale_option WHERE specid=?",id);
				return ret1;
			}
		});
	}
	/**
	 * 根据id查找规格
	 */
	public GoodsSaleSpec findById(int id){
		return GoodsSaleSpec.me().findFirst("SELECT * FROM t_bus_goods_sale_spec WHERE id=?",id);
	}
	/**
	 * 根据id查找规格
	 */
	public List<GoodsSaleOption> findOptionById(int id){
		return GoodsSaleOption.me().find("SELECT o.specid,o.optionName FROM t_bus_goods_sale_option o WHERE specid=?",id);
	}
	/**
	 * 根据名称查找规格
	 */
	public GoodsSaleSpec findSpecByName(String specName){
		return GoodsSaleSpec.me().findFirst("SELECT * FROM t_bus_goods_sale_spec  WHERE specName=?",specName);
	}
	/**
	 * 根据id查找规格
	 */
	public List<GoodsSaleOption> findOptionByspecName(int id){
		return GoodsSaleOption.me().find("SELECT o.specid,o.optionName FROM t_bus_goods_sale_option o WHERE specid=?",id);
	}
	/**
	 * 查询所有的规格信息,含参数
	 */
	public List<GoodsSaleSpec> findAllSpecs(){
		return GoodsSaleSpec.me().find("SELECT s.id,s.specName,(SELECT group_concat(o.optionName) FROM t_bus_goods_sale_option o WHERE o.specid = s.id) FROM t_bus_goods_sale_spec s");
	}
	/**
	 * 删除规格下的参数
	 * @param goodId
	 * @return
	 */
	public int deteleOption(int specid) {
		return Db.update("delete from t_bus_goods_sale_option where specid=?",specid);
	}
	/**
	 *修改规格名称
	 */
	public boolean updatespec(GoodsSaleSpec spec){
		return spec.update();
	}
	/**
	 *查找当前规格绑定的模板
	 */
	public List<GoodsSaleTemplate> findTem(String id){
		return GoodsSaleTemplate.me().find("select * from t_bus_goods_sale_template where FIND_IN_SET(?,spec)",id);
	}
}
